package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.settlement.system.converter.*;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 唯品会差异明细
 * @author Ximi
 * @since 2020-04-17
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblWpItemDiffSource extends BaseModel implements Serializable {


    /**
     * 全局唯一ID
     */
    @ExcelProperty(value = "唯一ID",converter = BigNumberTabFormatConvert.class)
    private String globalId;

    /**
     * 公司编码
     */
    private String companyNo;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 店铺编码
     */
    @ExcelProperty(value = "店铺编码")
    private String shopNo;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 类别
     */
    private String defCode;

    /**
     * 税码
     */
    private String taxCode;

    /**
     * 收费项目
     */
    @ExcelProperty(value = "收费项目")
    private String feeItem;

    /**
     * 费用定义
     */
    @ExcelProperty(value = "费用定义")
    private String feeDef;

    /**
     * 供应商编码
     */
    private String vendorCode;

    /**
     * 供应商名称
     */
    private String vendorName;

    /**
     * 商助员工姓名
     */
    private String busiAssistantName;

    /**
     * 商助所在部门名称
     */
    @ExcelProperty(value = "部门")
    private String dept;

    /**
     * 品牌
     */
    @ExcelProperty(value = "品牌名称")
    private String wpBrandName;

    /**
     * 合作模式描述
     */
    private String cooperationTypeName;

    /**
     * 费用原因说明
     */
    @ExcelProperty(value = "费用原因说明")
    private String comments;

    /**
     * 确认金额
     */
    @ExcelProperty(value = "确认金额")
    private BigDecimal comfireAmount;

    /**
     * 币种
     */
    private String currencyCode;

    /**
     * 仓库
     */
    private String storeHouse;

    /**
     * 销售订单号
     */
    @ExcelProperty(value = "销售订单号",converter = BigNumberTabFormatConvert.class)
    private String so;

    /**
     * PO
     */
    @ExcelProperty(value = "PO")
    private String poNo;

    /**
     * 收款方式
     */
    private String initDeductWay;

    /**
     * 扣款主体名称
     */
    private String orgName;

    /**
     * 最终扣款方式
     */
    private String deductWay;

    /**
     * 最终扣款主体名称
     */
    private String finalOrgName;

    /**
     * 费用项状态 N:新建 W:待签发 S:签发
     */
    private String status;

    /**
     * 对账会计工号
     */
    private Long accountant;

    /**
     * 流水号
     */
    @ExcelProperty(value = "流水号")
    private String seqNo;

    /**
     * 账单编码
     */
    @ExcelProperty(value = "账单编码")
    private String billNumber;

    /**
     * 创建时间
     */
    private Date creationDate;

    /**
     * sku
     */
    @ExcelProperty(value = "sku",converter = BigNumberTabFormatConvert.class)
    private String barcode;

    /**
     * sku 名称
     */
    private String barcodeDesc;

    /**
     * 价保数量
     */
    private BigDecimal itemPriceAdjustQuantity;

    /**
     * 价保单价
     */
    private BigDecimal itemPriceAdjustAmount;

    /**
     * 价保截止时间 ,库存、收货类型使用
     */
    private Date priceAdjustClosingDate;

    /**
     * 价保开始生效时间，销售类型使用
     */
    private Date priceAdjustStartDateActive;

    /**
     * 价保结束生效时间，销售类型使用
     */
    private Date priceAdjustEndDateActive;

    /**
     * 签发时间
     */
    private Date signTime;

    /**
     * 账单开始时间
     */
    private Date startDate;

    /**
     * 账单结束时间
     */
    private Date endDate;

    /**
     * 对账会计名字
     */
    private String accountantName;

    /**
     * 扣率
     */
    @ExcelProperty(value = "扣率")
    private BigDecimal discountRate;

    /**
     * 凭证摘要FPP:首期（提前),FP:首期,AP:全款,TP:尾款
     */
    @ExcelProperty(value = "凭证摘要",converter = WpVoucherSummaryConvert.class)
    private String voucherSummary;

    /**
     * 档期
     */
    @ExcelProperty(value = "档期")
    private String calendar;

    /**
     * 暂估金额
     */
    @ExcelProperty(value = "暂估40%")
    private BigDecimal estimateAmount;

    /**
     * 入账数量
     */
    @ExcelProperty(value = "入账数量")
    private BigDecimal enterQty;

    /**
     * NC收入
     */
    @ExcelProperty(value = "NC收入")
    private BigDecimal amount;

    /**
     * 100%数量
     */
    @ExcelProperty(value = "100%数量")
    private BigDecimal allQty;

    /**
     * 100%收入
     */
    @ExcelProperty(value = "100%收入")
    private BigDecimal allAmount;

    /**
     * 100%终端收入
     */
    @ExcelProperty(value = "100%终端收入")
    private BigDecimal allTerminalAmount;

    /**
     * 100%平台扣费
     */
    @ExcelProperty(value = "100%平台扣费")
    private BigDecimal allPlatformAmount;

    /**
     * 品牌编码
     */
    private String brandNo;

    /**
     * 品牌名称
     */
    @ExcelProperty(value = "品牌简称")
    private String brandName;

    /**
     * 商品编码
     */
    private String itemNo;

    /**
     * 备注（应收）
     */
    @ExcelProperty(value = "备注（应收）")
    private String remark;

    /**
     * 采购单号条码
     */
    @ExcelProperty(value = "采购单号条码",converter = BigNumberTabFormatConvert.class)
    private String poItemNo;

    /**
     * 销售日期
     */
    @ExcelProperty(value = "销售日期",converter = DateFormatConvert.class)
    private Date sendDate;

    /**
     * 结算期间
     */
    @ExcelProperty(value = "结算期间")
    private String settleAccountPeriod;

    /**
     * 入账月份
     */
    @ExcelProperty(value = "入账月份")
    private String entryAccountMonth;

    /**
     * 结算月份
     */
    @ExcelProperty(value = "结算月份")
    private String settleAccountMonth;

    /**
     * 账单类别　M 月结账单，P 进度账单 ，H 人工账单，T 经销账单，TGCY 退供差异账单
     */
    @ExcelProperty(value = "账单类别",converter = WpBillNumberTypeConvert.class)
    private String billNumberType;

    /**
     * 账单明细 1:销售明细 2:客退明细 3:其他明细
     */
    @ExcelProperty(value = "账单明细",converter = WpOrderTypeConvert.class)
    private Integer orderType;

    /**
     * 差异类别
     */
    @ExcelProperty(value = "差异类别",converter = WpDiffTypeConvert.class)
    private String diffType;

    /**
     * 大类
     */
    private String category;

    /**
     * 大类名称
     */
    @ExcelProperty(value = "大类")
    private String categoryName;

    /**
     * 进度状态
     */
    private String processStatus;

    /**
     * 分库字段
     */
    private String shardingFlag;

    /**
     * JITX发货方式
     */
    @ExcelProperty(value = "JITX发货方式")
    private String poWarehouseType;

    /**
     * 供应商商品编码
     */
    @ExcelProperty(value = "供应商商品编码")
    private String vendorGoodsNo;

    /**
     * 尺码
     */
    @ExcelProperty(value = "尺码")
    private String itemSize;

    /**
     * 发货模式
     */
    @ExcelProperty(value = "发货模式",converter = WpDeliveryTypeConvert.class)
    private Integer deliveryType;

    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号",converter = BigNumberTabFormatConvert.class)
    private String extOrderNum;

    /**
     * 退供单号
     */
    @ExcelProperty(value = "退供单号")
    private String returnDocNo;

    /**
     * 数量
     */
    @ExcelProperty(value = "数量")
    private BigDecimal quantity;

    /**
     * 采购档期编号
     */
    @ExcelProperty(value = "采购档期编号")
    private String scheduleId;


}
